Force feedback interface device with force functionality button

ABSTRACT

A force feedback mouse interface device connected to a host computer and providing realistic force feedback to a user. The mouse interface device includes a mouse object and a linkage coupled to the mouse that includes a plurality of members rotatably coupled to each other in a planar closed-loop linkage, two of the members coupled to ground and rotatable about the same axis. Two actuators, preferably electromagnetic voice coils, provide forces in the two degrees of freedom of the planar workspace of the mouse object. Each of the actuators includes a moveable coil portion integrated with one of the members of the linkage and a magnet portion coupled to the ground surface through which the coil portion moves. At least one sensor is coupled to the ground surface that detects movement of the linkage and provides a sensor signal including information from which a position of the mouse object in the planar workspace can be determined.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 08/965,720,filed Nov. 7, 1997, now U.S. Pat. No. 6,166,723. application Ser. No.08/965,720 is a continuation-in-part of co-pending parent patentapplications Ser. No. 08/560,091, filed Nov. 17, 1995, on behalf ofRosenberg et al., entitled “Method and Apparatus for Providing Low CostForce Feedback and Mechanical I/O for Computer Systems”, now U.S. Pat.No. 5,805,140, Ser. No. 08/756,745, now U.S. Pat. No. 5,825,308, filedNov. 26, 1996, on behalf of Rosenberg et al., entitled, “Force FeedbackInterface having Isotonic and Isometric Functionality,” and Ser. No.08/881,691, now U.S. Pat. No. 6,100,874, filed Jun. 24, 1997, on behalfof Schena et al., entitled, “Force Feedback Mouse Interface”, allassigned to the assignee of this present application, and all of whichare incorporated by reference herein.

BACKGROUND OF THE INVENTION

The present invention relates generally to interface devices forallowing humans to interface with computer systems, and moreparticularly to mechanical computer interface devices that allow theuser to provide input to computer systems and provide force feedback tothe user.

Computer systems are used extensively in many different industries toimplement many applications, such as word processing, data management,simulations, games, and other tasks. A computer system typicallydisplays a visual environment to a user on a display screen or othervisual output device. Users can interact with the displayed environmentto perform functions on the computer, play a game, experience asimulation or “virtual reality” environment, use a computer aided design(CAD) system, browse the World Wide Web, or otherwise influence eventsor images depicted on the screen.

One visual environment that is particularly common is a graphical userinterface (GUI). GUI's present visual images which describe variousgraphical metaphors of a program or operating system implemented on thecomputer. Common GUI's include the Windows® operating system fromMicrosoft Corporation and the MacOS® operating system from AppleComputer, Inc. These interfaces allows a user to graphically select andmanipulate functions of the operating system and application programs byusing an input interface device. The user typically moves auser-controlled graphical object, such as a cursor or pointer, across acomputer screen and onto other displayed graphical objects or predefinedscreen regions, and then inputs a command to execute a given selectionor operation. The objects or regions (“targets”) can include, forexample, icons, windows, pull-down menus, buttons, and scroll bars. MostGUI's are currently 2-dimensional as displayed on a computer screen;however, three dimensional (3-D) GUI's that present simulated 3-Denvironments on a 2-D screen can also be provided.

Other programs or environments that may provide user-controlledgraphical objects such as a cursor include browsers and other programsdisplaying graphical “web pages” or other environments offered on theWorld Wide Web of the Internet, CAD programs, video games, virtualreality simulations, etc. In some graphical computer environments, theuser may provide input to control a 3-D “view” of the graphicalenvironment, i.e., the user-controlled graphical “object” can beconsidered the view displayed on the video screen. The user canmanipulate the interface device to move the view, as if moving a camerathrough which the user is looking. This type of graphical manipulationis common in CAD or 3-D virtual reality applications.

The user interaction with and manipulation of the computer environmentis achieved using any of a variety of types of human-computer interfacedevices that are connected to the computer system controlling thedisplayed environment. In most systems, the computer updates theenvironment in response to the user's manipulation of auser-manipulatable physical object (“user object”) that is included inthe interface device, such as a mouse, joystick, trackball, etc. Thecomputer provides visual and audio feedback to the user utilizing thedisplay screen and, typically, audio speakers.

Another mode of feedback recently introduced to the consumer home marketis force feedback, which provide the user with sensory “haptic” (feel)information about an environment. Most of the consumer force feedbackdevices are joysticks which include motors to provide the forces to thejoystick and to the user. Current force feedback joystick devices mayallow realistic and effective forces to be transmitted to a user;however, the standard joystick device is well-suited for such uses ascontrolling an aircraft or other simulated vehicle in a simulation orgame, first-person perspective virtual reality applications, or otherrate-control tasks and is not well suited to position control tasks suchas controlling a pointer or cursor in a graphical user interface. Othertypes of controllers, such a mouse, trackball, stylus and tablet, “touchpoint” keyboard pointers, and finger pads are commonly provided forcursor position control tasks since they are adept at accuratelycontrolling the position of a graphical object in two dimensions.Herein, “position control” refers to a direct mapping of the position ofthe user object with a user-controlled graphical object, such ascontrolling a cursor in a GUI, while “rate control” refers to anindirect or abstract mapping of user object to graphical object, such asscrolling text in a window, zooming to a larger view in a window of aGUI, or controlling velocity of a simulated vehicle.

A problem with the currently-available position control interfacedevices is that none of them offer realistic force feedback. A mouse isnot easily provided with force feedback since the mouse must be moved ina planar workspace and is not easily connected to actuators whichprovide the force feedback. Controllers such as trackballs and tabletsare even less well suited for force feedback than a mouse controller dueto their free-floating movement. A joystick, in contrast, is typicallyconnected to an immobile base which can include large actuators neededto provide realistic forces on the joystick. A mouse can be coupled toactuators from a side linkage, but a compact, low cost, andconveniently-positioned mechanism allowing free movement of a mouse aswell as providing realistic force feedback for the mouse has not beenavailable in the consumer market.

SUMMARY OF THE INVENTION

The present invention is directed to a mouse interface which isconnected to a host computer and provides realistic force feedback to auser. The interface device includes low cost, compact components thatprovide a convenient mouse interface for a desktop.

More specifically, the present invention provides a mouse interfacedevice for interfacing a user's motion with a host computer andproviding force feedback to the user. The host computer preferablyimplements a graphical environment with which the user interacts usingthe mouse interface device. The mouse interface device includes a userobject, preferably a mouse object, contacted and manipulated by a userand moveable in a planar workspace with respect to a ground surface. Alinkage coupled to the mouse includes a plurality of members rotatablycoupled to each other. In one preferred configuration, the linkage is aplanar closed-loop linkage including five members, where two members arecoupled to ground and rotatable about the same axis. Two actuators,preferably electromagnetic voice coil actuators, provide forces in thetwo degrees of freedom of the planar workspace of the mouse object. Eachof the actuators includes a moveable coil portion preferably integratedwith one of the members of the linkage and a magnet portion coupled tothe ground surface through which the coil portion moves. One or moresensors are coupled to the ground surface that detects movement of amember of the linkage and provides a sensor signal including informationfrom which a position of the mouse object in the planar workspace can bedetermined.

First and second grounded base members pivot about a single axis withrespect to the ground member. Preferably, the first base member andfirst link member are symmetrically arranged from the second base memberand second link member. The coils of the actuators are preferablyintegrated in the members of the linkage, for example the base members,and move through magnetic fields provided by the grounded portions. In apreferred configuration, the first and second base members are coupledto a rotation point at a mid point of the base members, where one end ofeach base member integrates said coil such that the coil is spaced fromthe rotation point of the member. The actuators are preferably spacedapart from each other, and a base portion of one of the actuators isused as a base portion of a different actuator.

The sensors can be digital encoders, where the ends of the first andsecond base members include an encoder arc which moves past a groundedemitter and detector. The encoder arc includes a number of equallyspaced marks detected by the encoders when the member moves. The arcalternatively can include an opaque portion and a transparent strip,where the strip is skewed such that its distance from a center ofrotation of the arc varies along the length of the strip.

A stop mechanism limits movement of the mouse object in four directionsin the planar workspace to a desired area. The stop mechanism caninclude a guide opening provided in a pad surface on which the mouseobject slides. The linkage can be positioned beneath the pad surface,and a portion of the linkage can protrude through the guide opening andengage the sides of the guide opening to provide the limits to the mousemovement. The mouse object can also be supported by a support separatefrom the linkage and provided between the mouse object and the groundsurface, such as a roller coupled to the mouse object or to anassociated coupling. A safety switch can be included that causes theactuators to be deactivated when the user is not contacting the mouseobject. A local microprocessor, separate from the host computer system,is included in the interface device and may provide local control oversensing and outputting forces to relieve the computational burden on thehost computer.

The method and apparatus of the present invention provides a forcefeedback mouse interface that allows a user to conveniently interfacewith a host computer application program. The actuators, sensors, andlinkage of the device, in the embodiments described, provide a compact,simple, low-cost design that outputs realistic forces on the user andaccurately tracks the user's motions in the provided workspace, and iswell suited for the consumer market.

These and other advantages of the present invention will become apparentto those skilled in the art upon a reading of the followingspecification of the invention and a study of the several figures of thedrawing.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of one embodiment of a force feedback mouseinterface system of the present invention;

FIG. 1 a is a perspective view of the mouse object to be manipulated bythe user in the system of FIG. 1;

FIGS. 1 b and 1 c are perspective views of alternate embodiments of aforce feedback interface device of the present invention;

FIG. 2 a is a perspective view of the mouse interface of FIG. 1 insidethe housing;

FIG. 2 b is a perspective view of a mechanical portion of the mouseinterface of FIG. 1;

FIG. 3 a is a perspective view of a support pad for supporting the mouseof FIG. 1 a;

FIG. 3 b is a perspective view of the underside of the mouse object ofFIG. 1 a;

FIG. 3 c is a side elevational view of the mouse interface of FIG. 2;

FIG. 4 a is a top plan view of the mechanical portion of the mouseinterface of FIG. 2 b;

FIG. 4 b is a side elevational view of the actuators of the mouseinterface;

FIG. 4 c is a top plan view of the mechanical portion of the mouseinterface after the linkage has been moved;

FIGS. 5 a and 5 b are top plan and side elevational views, respectively,of an alternate sensor of the present invention; and

FIG. 6 is a block diagram of the system of FIG. 1 for controlling aforce feedback interface device of the present invention.

FIG. 7 is a diagram of a displayed graphical user interface whichincludes click surfaces of the present invention;

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

FIG. 1 is a perspective view of a force feedback mouse interface system10 of the present invention capable of providing input to a hostcomputer based on the user's manipulation of the mouse and capable ofproviding force feedback to the user of the mouse system based on eventsoccurring in a program implemented by the host computer. Mouse system 10includes an interface device 11 including a mouse or “puck” 12 and aninterface 14, and a host computer 18. It should be noted that the term“mouse” as used herein, indicates an object 12 generally shaped to begrasped or contacted from above and moved within a substantially planarworkspace (and additional degrees of freedom if available). Typically, amouse is a smooth or angular shaped compact unit that snugly fits undera user's hand, fingers, and/or palm, but can be implemented as otherobjects as well.

Mouse 12 is an object that is preferably grasped or gripped andmanipulated by a user. By “grasp,” it is meant that users may releasablyengage a portion of the object in some fashion, such as by hand, withtheir fingertips, etc. For example, images are displayed and or modifiedon a display screen 20 of the computer system 18 in response to suchmanipulations. In the described embodiment, mouse 12 is shaped so that auser's fingers or hand may comfortably grasp the object and move it inthe provided degrees of freedom in physical space. For example, a usercan move mouse 12 to correspondingly move a computer generated graphicalobject, such as a cursor or other image, in a graphical environmentprovided by computer 18. The available degrees of freedom in which mouse12 can be moved are determined from the interface 14, described below.In addition, mouse 12 preferably includes one or more buttons 15 toallow the user to provide additional commands to the computer system.

The mouse 12 may also include additional buttons. For example, FIG. 1 ashows a perspective view of the opposite side of the mouse 12, in whicha thumb button 15 a is provided. Buttons 15 and 15 a allow a user toinput a command independently of the position of the mouse 12 in theprovided degrees of freedom. For example, in a GUI, buttons are commonlyused to select options once a cursor has been guided to a desired areaor object on the screen using the position of the mouse. In oneembodiment, the user can place his or her two middle fingers on buttons15 and place the remaining fingers on the sides of mouse 12 (and atbutton 15 a) to manipulate mouse 12 against forces generated byactuators 64. In addition, in some configurations with a smaller-sizemouse 12, the fingers of a user may move the mouse 12 and press buttons15 while the palm of the hand remains fixed or resting against agrounded surface. Since the fingers are more sensitive to output forcesthan the entire hand, forces of less magnitude may be output from theinterface system 10 to the fingers and achieve an equivalent forcesensation to higher magnitude forces applied to the entire hand (as witha joystick). Thus, less powerful actuators and less power consumption isrequired when the user manipulates mouse 12 with fingers alone. Thumbbutton 15 a, in the preferred embodiment, also may command specificforce feedback features of the system 10, as described below.

It will be appreciated that a great number of other types of usermanipulable objects (“user objects” or “physical objects”) can be usedwith the method and apparatus of the present invention in place of or inaddition to mouse 12. For example, such objects may include a sphere, apuck, a joystick, cubical- or other-shaped hand grips, a receptacle forreceiving a finger or a stylus, a flat planar surface like a plasticcard having a rubberized, contoured, and or bumpy surface, or otherobjects. Other examples of a user object 12 are described below withreference to FIG.s 1 b and 1 c.

Interface 14 interfaces mechanical and electrical input and outputbetween the mouse 12 and host computer 18 implementing the applicationprogram, such as a GUI, simulation or game environment. Interface 14provides multiple degrees of freedom to mouse 12; in the preferredembodiment, two linear, planar degrees of freedom are provided to themouse, as shown by arrows 22. In other embodiments, greater or fewerdegrees of freedom can be provided, as well as rotary degrees offreedom. For many applications, mouse 12 need only be moved in a verysmall workspace area.

In a preferred embodiment, the user manipulates mouse 12 in a planarworkspace, much like a traditional mouse, and the position of mouse 12is translated into a form suitable for interpretation by positionsensors of the interface 14. The sensors track the movement of the mouse12 in planar space and provide suitable electronic signals to anelectronic portion of interface 14. The interface 14 provides positioninformation to host computer 18. In addition, host computer 18 and/orinterface 14 provide force feedback signals to actuators coupled tointerface 14, and the actuators generate forces on members of themechanical portion of the interface 14 to provide forces on mouse 12 inprovided or desired degrees of freedom. The user experiences the forcesgenerated on the mouse 12 as realistic simulations of force sensationssuch as jolts, springs, textures, “barrier” forces, and the like.

The electronic portion of interface 14 may couple the mechanical portionof the interface to the host computer 18. The electronic portion ispreferably included within the housing 21 of the interface 14 or,alternatively, the electronic portion may be included in host computer18 or as a separate unit with its own housing. More particularly,interface 14 includes a local microprocessor distinct and separate fromany microprocessors in the host computer 18 to control force feedback onmouse 12 independently of the host computer, as well as sensor andactuator interfaces that convert electrical signals to appropriate formsusable by the mechanical portion of interface 14 and host computer 18.

For example, a rigid surface is generated on computer screen 20 and acomputer object (e.g., cursor) controlled by the user collides with thesurface. In a preferred embodiment, high-level host commands can be usedto provide the various forces associated with the rigid surface. Thelocal control mode using a local microprocessor in interface 14 can behelpful in increasing the response time for forces applied to the userobject, which is essential in creating realistic and accurate forcefeedback. For example, it is preferable that host computer 18 send a“spatial representation” to the local microprocessor, which is datadescribing the locations of some or all the graphical objects displayedin a GUI or other graphical environment which are associated with forcesand the types/characteristics of these graphical objects. Themicroprocessor can store such a spatial representation in local memory,and thus will be able to determine interactions between the user objectand graphical objects (such as the rigid surface) independently of thehost computer. In addition, the microprocessor can be provided with thenecessary instructions or data to check sensor readings, determinecursor and target positions, and determine output forces independentlyof host computer 18. The host could implement program functions (such asdisplaying images) when appropriate, and synchronization commands can becommunicated between the microprocessor and host 18 to correlate themicroprocessor and host processes. Also, the local memory can storepredetermined force sensations for the microprocessor that are to beassociated with particular types of graphical objects. Alternatively,the computer 18 can directly send force feedback signals to theinterface 14 to generate forces on mouse 12. A suitable embodiment ofthe electrical portion of interface 14 is described in detail withreference to FIG. 6.

The interface 14 can be coupled to the computer 18 by a bus 17, whichcommunicates signals between interface 14 and computer 18 and also, inthe preferred embodiment, provides power to the interface 14 (e.g. whenbus 17 includes a USB interface). In other embodiments, signals can besent between interface 14 and computer 18 by wirelesstransmission/reception. In preferred embodiments of the presentinvention, the interface 14 serves as an input/output (I/O) device forthe computer 18. The interface 14 can also receive inputs from otherinput devices or controls that are associated with mouse system 10 andcan relay those inputs to computer 18. For example, commands sent by theuser activating a button on mouse 12 can be relayed to computer 18 byinterface 14 to implement a command or cause the computer 18 to output acommand to the interface 14.

Host computer 18 is preferably a personal computer or workstation, suchas an IBM-PC compatible computer or Macintosh personal computer, or aSUN or Silicon Graphics workstation. For example, the computer 18 canoperate under the Window™ or MS-DOS operating system in conformance withan IBM PC AT standard. Alternatively, host computer system 18 can be oneof a variety of home video game systems commonly connected to atelevision set, such as systems available from Nintendo, Sega, or Sony.In other embodiments, host computer system 18 can be a “set top box”which can be used, for example, to provide interactive televisionfunctions to users, or a “network-” or “internet-computer” which allowsusers to interact with a local or global network using standardconnections and protocols such as used for the Internet and World WideWeb. Host computer preferably includes a host microprocessor, randomaccess memory (RAM), read only memory (ROM), input/output (I/O)circuitry, and other components of computers well-known to those skilledin the art.

Host computer 18 preferably implements a host application program withwhich a user is interacting via mouse 12 and other peripherals, ifappropriate, and which can include force feedback functionality. Forexample, the host application program can be a simulation, video game,Web page or browser that implements HTML or VRML instructions,scientific analysis program, virtual reality training program orapplication, or other application program that utilizes input of mouse12 and outputs force feedback commands to the mouse 12. Herein, forsimplicity, operating systems such as Windows™, MS-DOS, MacOS, Unix,etc. are also referred to as “application programs.” In one preferredembodiment, an application program utilizes a graphical user interface(GUI) to present options to a user and receive input from the user.Herein, computer 18 may be referred as displaying “graphical objects” or“computer objects.” These objects are not physical objects, but arelogical software unit collections of data and/or procedures that may bedisplayed as images by computer 18 on display screen 20, as is wellknown to those skilled in the art. A displayed cursor or a simulatedcockpit of an aircraft might be considered a graphical object. The hostapplication program checks for input signals received from theelectronics and sensors of interface 14, and outputs force values and/orcommands to be converted into forces on mouse 12. Suitable softwaredrivers which interface such simulation software with computerinput/output (I/O) devices are available from Immersion Human InterfaceCorporation of San Jose, Calif.

Display device 20 can be included in host computer 18 and can be astandard display screen (LCD, CRT, etc.), 3-D goggles, or any othervisual output device. Typically, the host application provides images tobe displayed on display device 20 and/or other feedback, such asauditory signals. For example, display screen 20 can display images froma GUI. Images describing a moving, first person point of view can bedisplayed, as in a virtual reality game. Or, images describing athird-person perspective of objects, backgrounds, etc. can be displayed.Alternatively, images from a simulation, such as a medical simulation,can be displayed, e.g., images of tissue and a representation of amanipulated user object 12 moving through the tissue, etc.

There are two primary “control paradigms” of operation for mouse system10: position control and rate control. Position control is the moretypical control paradigm for mouse and similar controllers, and refersto a mapping of mouse 12 in which displacement of the mouse in physicalspace directly dictates displacement of a graphical object. The mappingcan have an arbitrary scale factor or even be non-linear, but thefundamental relation between mouse displacements and graphical objectdisplacements should be present. Under a position control mapping, thecomputer object does not move unless the user object is in motion.Position control is not a popular mapping for traditional computergames, but is popular for other applications such as graphical userinterfaces (GUI's) or medical procedure simulations. Position controlforce feedback roughly corresponds to forces which would be perceiveddirectly by the user, i.e., they are “user-centric” forces. Also,“ballistics” or other non-linear adjustments to cursor position can beused, in which, for example, small motions of the mouse have a differentscaling factor for cursor movement than large motions of the mouse, toallow more control of small

As shown in FIG. 1, the host computer may have its own “host frame” 28which is displayed on the display screen 20. In contrast, the mouse 12has its own “local frame” 30 in which the mouse 12 is moved. In aposition control paradigm, the position (or change in position) of auser-controlled graphical object, such as a cursor, in host frame 30corresponds to a position (or change in position) of the mouse 12 in thelocal frame 28. The offset between the object in the host frame and theobject in the local frame can be changed by the user for indexing, asdescribed below.

Rate control is also used as a control paradigm. This refers to amapping in which the displacement of the mouse 12 along one or moreprovided degrees of freedom is abstractly mapped to motion of acomputer-simulated object under control. There is not a direct physicalmapping between physical object (mouse) motion and computer objectmotion. Thus, most rate control paradigms are fundamentally differentfrom position control in that the user object can be held steady at agiven position but the controlled computer object is in motion at acommanded or given velocity, while the position control paradigm onlyallows the controlled-computer object to be in motion if the user objectis in motion.

The mouse interface system 10 is useful for both position control(“isotonic”) tasks and rate control (“isometric”) tasks. For example, asa traditional mouse, the position of mouse 12 in its local frame 30workspace can be directly mapped to a position of a cursor in host frame28 on display screen 20 in a position control paradigm. Alternatively,the displacement of mouse 12 in a particular direction against anopposing output force can command rate control tasks in an isometricmode. An implementation that provides both isotonic and isometricfunctionality for a force feedback controller and which is very suitablefor the interface device of the present invention is described in patentapplication Ser. No. 08/756,745, now U.S. Pat. No. 5,825,308incorporated by reference herein.

Mouse 12 is preferably supported upon a grounded pad 32 by themechanical portion of interface 14, described below. Pad 32 or a similarsurface is supported by grounded surface 34. Mouse 12 contacts groundedpad 32 (or alternatively grounded surface 34) to provide additionalsupport for the mouse and relieve stress on the mechanical portion ofinterface 14. In particular, such additional support is valuable for thepreferred embodiment in which there is only one location of grounding(e.g., at one grounded axis of rotation) for the mechanical linkage ofthe device, as in the embodiment of FIG. 2 b. In such an embodiment, aroller, wheel, Teflon pad or other device is preferably used on themouse to minimize friction between the mouse and the contacted surface,as described in greater detail below.

Mouse 12 can be used, for example, to control a computer-generatedgraphical object such as a cursor displayed in a graphical computerenvironment, such as a GUI. The user can move the mouse in 2D planarworkspace to move the cursor to graphical objects in the GUI or performother tasks. In other graphical environments, such as a virtual realityvideo game, a user can be controlling a computer player or vehicle inthe virtual environment by manipulating the mouse 12. The computersystem tracks the position of the mouse with sensors as the user movesit. The computer system may also provide force feedback commands to themouse, for example, when the user moves the graphical object against agenerated surface such as an edge of a window, a virtual wall, etc. Itthus appears and feels to the user that the mouse and the graphicalobject are contacting real surfaces.

The mouse system 10 also preferably includes an indexing function or“indexing mode” which allows the user to redefine the offset between thepositions of the mouse 12 in the local frame and a user-controlledgraphical object, such as a cursor, in the host frame displayed by hostcomputer 18. Indexing is inherently provided with a traditional positioncontrol device such as a standard mouse. When a physical limit to themouse's movement is reached, the user typically lifts the mouse from thecontacted surface and places the mouse in a different position to allowmore room to move the mouse. While the mouse is off the contactedsurface, no input is provided to control the cursor. Mouse 12 of thepresent invention also has a limit to movement in the provided planarworkspace provided by a guide opening 76, as detailed below. To allowmovement of the cursor in the host frame past the limits of the mouselocal frame, “indexing” is implemented.

In one implementation, the user may reposition the mouse 12 withoutmoving the controlled graphical object or providing any other input tothe host computer, thus allowing the user to redefine the offset betweenthe object's position and the cursor's position. This is analogous tostandard mouse indexing. In the present invention, such indexing isachieved through an input device such as button 15 a, or alternativelyusing switches, pressure sensors, optical sensors, contact sensors,voice recognition hardware, or other input devices. As long as theindexing button or device is activated, the mouse 12 is in indexing modeand can be moved without providing any input to the host computer (e.g.,without moving the controlled graphical object). When the button isreleased (or indexing mode otherwise exited), the position of the cursoris again controlled by the position of the mouse 12. Alternatively, theuser might toggle indexing mode and non-indexing mode with one press ofa button 15 or other input device. Indexing mode can be performeddirectly by the host computer 18, or a local microprocessor can performthe indexing function. For example, the local processor can determinewhen indexing mode is active, and simply not report the position of themouse 12 to the host computer 18 while such mode is active.

A hand weight switch can also be provided which inherently causesindexing when the user removes hand or finger weight from mouse 12. Inone embodiment, the functionality of a safety switch and the indexingmode are integrated into one input device, since it is typicallydesirable to deactivate any output forces to the mouse 12 when indexingis being performed for safety reasons or ergonomic reasons, e.g. forcesintuitively should not be output when indexing occurs. Thus, a handweight safety switch can be used as both a safety switch and an indexingswitch. This type of indexing and hand weight safety switch aredescribed in greater detail in parent patent applications Ser. No.08/756,745 now U.S. Pat. No. 5,825,308 and Ser. No. 08/881,691 now U.S.Pat. No. 6,100,874.

A different way to allow indexing is to provide a combined positioncontrol and rate control device which allows different forms of controlof the cursor depending on the position of the mouse in its workspace.If the mouse is positioned in an interior area of its workspace, thecursor is updated on the screen in a standard position control fashion.However, if the mouse is moved to an edge region near the limits to theworkspace, a rate control paradigm is adopted. Preferably, a force isoutput on the mouse at the edge region border to resist motion towardthe workspace limit, and the cursor is moved on the screen in adirection and rate corresponding to the mouse direction and distance ofpenetration against the force. The user can thus control the cursor tothe edge of the screen based on mouse penetration into the rate controledge region (“pressure indexing”). This embodiment is described ingreater detail in co-pending patent application Ser. No. 08/924,462, byRosenberg et al., filed Aug. 23, 1997, now U.S. Pat. No. 6,252,579,which is hereby incorporated by reference herein.

Other features of the present invention are also provided using forcefeedback functionality. For example, thumb button 15 a can toggle aforce functionality mode in which designated graphical objects orregions displayed on screen 20 have other functions enabled by forcefeedback. A graphical object, such as a window or icon in a GUI, can actdifferently for selection of functions of the host computer or program,and or for the forces associated with the object/region, depending onwhether the force functionality mode is active. For example, when themode is not active, the cursor can be moved normally through the borderor edge of a window, with no force sensations associated with themovement over the window. However, when the force mode is active (suchas by pressing or holding button 15 a), a spring force will be output onmouse 12 opposing the movement of the cursor through the window border.This force is used as for “pressure scrolling” or as a “scroll surface”,where the amount of penetration of the mouse against the spring forcecontrols the speed of scrolling of a document displayed in that window.Alternatively, when the button 15 a is held down by the user, an“isometric” or “pressure” mode can be entered at the current location ofthe cursor, where the mouse functions as an isometric controller. Suchembodiments are described in patent application 08/756,745, now U.S.Pat. No. 5,825,308. In a “pressure clicking” or “click surface”embodiment, if the cursor is moved against the border of an icon and theforce functionality mode is active, a force will be output resistingmotion of the cursor into the icon; when the mouse moves against theforce to a threshold distance, the icon is selected as if the cursor hadclicked or double-clicked on the icon. Such an embodiment is describedin co-pending patent application Ser. No. 08/879,296, entitled“Graphical Click Surfaces for Force Feedback Applications”, by Rosenberget al., filed Jun. 18, 1997, now U.S. Pat. No. 6,078,308, incorporatedby reference herein. In other embodiments, other input devices besidesor in addition to button 15 a can control the force functionality mode.Or, different input devices can control different modes; for example,one button can activate the pressure scrolling mode, while a differentbutton can activate pressure clicking mode.

The invention may include “click surfaces” which allow a user to selector initiate a program function while not requiring the user to select aphysical input device on the user object 12, such as a button. The clicksurfaces use force feedback to present the user with a resistant surfacethat must be moved or depressed to activate the function. Referring toFIG. 7, for example, force is output in a direction opposite to themovement of the cursor 306 into the click surface to cause the feel of aspring or other resistive element. When the cursor has moved asufficient distance “into” the click surface, the program function isinitiated as if the user had selected a button on the user object 12.This operation is described in greater detail below with regard to thedifferent types of click surfaces presented herein.

Icon 340 is one type of a graphical object that may be displayed in GUI300 and may be associated with a click surface. For a normal icon, theuser guides the cursor 306 over the displayed area of the icon 340 andpushes a physical button on user object 12 to initiate the functionassociated with the icon, which is typically executing an applicationprogram associated with the icon (or selecting the icon itself to dragit, show properties of it, etc.). In the present invention, icon 340 canbe implemented with one or more click surfaces 342. These operatesimilarly to the click surfaces 320, 322, and 336. For example, when thestatic selection surface type of click surface is provided, the clicksurface can be implemented as one of the displayed surfaces of thegraphical object (or target) itself and no separate displayed surface orbutton shape need be displayed. The click surfaces 342 can be thedisplayed borders of the icon 342, as shown, or may be invisiblesurfaces displayed a short distance away from the borders of the icon.Other graphical objects in GUI 300 can also incorporate the selectionsurface type of click surface in the displayed borders of the object,like the described embodiment of icon 340. For example, standardgraphical buttons 334, the border of window 302, the sides of pop-upmenu 307, the edges of the displayed portion of screen, or other objectscan be or include click surfaces of the present invention. When theclick surface is selected by moving the user object against an opposingforce of the click surface, a command gesture is provided to the hostcomputer as if a physical button on mouse or other input device waspressed.

In other embodiments, one side of icon 340 can be provided as a clicksurface, and another side of the icon can be implemented as a doubleclick surface. If the user selects the click surface, a single click(command gesture signal) is input to the host computer, and the userselects the icon and may then drag it, show its properties, etc. If theuser selects the double-click surface of the icon, the host computerreceives two clicks, indicating that a program associated with the iconshould be immediately executed. Another surface of the icon 340 could beused as a right button click corresponding to pressing the rightphysical button of the mouse, a middle button click for the middlebutton of the mouse, etc.

In other embodiments, icon 340 can include the other types of clicksurfaces in its borders, such as analog buttons and positive actionsbuttons. For example, one side of icon 340 can be displayed to moveinward with the force exerted by the user until the trigger point of thebutton is reached. Or, the side of icon 340 can be moved to the “on”position only after the trigger point is reached, as for positive actionbuttons. In yet other embodiments, only a portion of the side of theicon need be moved.

FIGS. 1 b and 1 c illustrate other embodiments of an interface deviceand user object 12 which can incorporate the features of the presentinvention. In FIG. 1 b, a hand-held remote control device 35 can be usedto access the functions of a device or appliance remotely by a user. Forexample, remote control 35 can be used to select functions of atelevision, video cassette recorder, sound stereo, etc. Morespecifically, remote control 35 can select functions of an internet ornetwork computer connected to a television. For example, one populardevice is Web-TV™, which is connected to a television and displaysinternet information such as web pages on the television screen. Remotecontrol 35 may include buttons 33 for selecting options of the Web-TVdevice, of the application program running on the device, or of webpages.

Remote control 35 also includes a fingertip joystick 35 for moving acursor on the television screen, scrolling windows, and other functionsthat are typically performed by a mouse on a personal computer.Fingertip joystick 35 can be implemented as the user object 12 of theinterface device 11 of the present invention. For example, a linkage,actuators, and sensors similar to these components of FIGS. 1 and 2 a-2b can be positioned in the housing of remote control so that joystick 35is coupled to the linkage, e.g. at bearing 58. The joystick 35 may bemoved in two planar degrees of freedom by the user's fingertips or hand.The workspace of the joystick 35 can be, for example, one-quarter tohalf the area of the required workspace of mouse 12. This allows theactuators, sensors, and linkage to be smaller and less costly that theembodiment of FIG. 1, e.g., forces of less magnitude, but with highfidelity, can be provided in a smaller workspace (also, since fingertipsare used, output forces need not be as high a magnitude as in otherembodiments). In addition, spring forces can be always provided by theactuators of the device 11 to bias the stick 33 toward the center of theplanar workspace to simulate a spring return on the joystick. Thissimulates a pivoting fingertip joystick of the prior art that hasphysical springs to center the joystick. Alternatively, a conventionalfull-size joystick can include the centering spring forces. Also, mouse12 in the embodiment of FIG. 1 can be provided with such a centeringspring bias, e.g. when the mouse is used like a joystick in game orsimulation applications.

FIG. 1 c illustrates an alternate embodiment of the remote control 35 ofFIG. 1 b, in which a gamepad controller 37 is provided with a fingertipjoystick 38. Controller 37 is intended to be held by both hands of auser. The controller 37 includes the standard input devices of prior artcontrollers, such as buttons and a directional game pad 39. The joystick38 can be moved in a planar workspace with a user's thumb and can besimilar to the joystick 35 of FIG. 1 b to allow force feedback in gamesand other applications.

FIG. 2 a is a perspective view of a preferred embodiment of the mousedevice 11 with the cover portion of housing 21 and the grounded pad 32removed. Mouse 12 is preferably coupled to the mechanical portion 24 ofinterface 14, which includes a mechanical linkage 40 that is coupled toa transducer assembly 41. A base 42 is provided to support themechanical linkage 40 and transducer system 41 on grounded surface 34.In the described embodiment, the linkage 40 allows mouse 12 two planardegrees of freedom in the directions of arrows 22, and the members ofthe linkage 40 move approximately within a plane. The linkage ispreferably coupled to grounded base 42 at an axis of rotation, describedbelow. The transducer assembly 41 is coupled to base 42 and is thus alsogrounded.

In the described embodiment, at least part of the electronic portion 26of interface 14 is positioned above the transducer assembly 41. Forexample, a printed circuit board 43 or similar support can be positionedover the top surface of transducer assembly 41. A number of integratedcircuits and other components 45 can be coupled to the printed circuitboard 43. This configuration allows the transducer assembly 41 and theelectronic portion 26 of the interface 14 to conform to a small volumewhich reduces the overall size of housing 21. and allows the mouseinterface device to be positioned in convenient areas of a desktop orother area accessible to a user.

FIG. 2 b is a perspective view of a portion of the mouse device 11 ofFIG. 2 a showing the mechanical portion 24 of interface 14 for providingmechanical input and output in accordance with the present invention.

Mechanical linkage 40 provides support for mouse 12 and couples themouse to a grounded surface 34, such as a tabletop or other support.Linkage 40 is, in the described embodiment, a 5-member (or “5-bar”)linkage including a ground member 42 (the base), a first base member 44coupled to ground member 42, a second base member 48 coupled to groundmember 42, a first -link member 46 coupled to base member 44, and asecond link member 50 coupled to link member 46 and base member 48. Inthe described embodiment, the base member 44 and the link member 46 arearranged symmetrically from base member 48 and link member 50 across anaxis extending perpendicularly through axes A and D. The symmetricalorientation of the members allows base member 44 and link member 46, insome embodiments, to be manufactured substantially in identical fashionas base member 48 and link member 50, thus saving on manufacturingcosts. Mouse 12 is coupled to the linkage at the coupling between linkmembers 46 and 50. Fewer or greater numbers of members in the linkagecan be provided in alternate embodiments.

Ground member 42 of the linkage 40 is a base for the support of thelinkage and is coupled to or resting on a ground surface 34. The groundmember 42 in FIG. 2 b is shown as a plate or base that extends undermouse 12. In other embodiments, the ground member can be shaped in otherways and might only contact the ground surface directly under bearing52, for example.

The members of linkage 40 are rotatably coupled to one another throughthe use of rotatable pivots or bearing assemblies having one or morebearings, all referred to as “bearings” herein. Base member 44 isrotatably coupled to ground member 42 by a grounded bearing 52 and canrotate about an axis A. Link member 46 is rotatably coupled to basemember 44 by bearing 54 and can rotate about a floating axis B, and basemember 48 is rotatably coupled to ground member 42 by bearing 52 and canrotate about axis A. Link member 50 is rotatably coupled to base member48 by bearing 56 and can rotate about floating axis C, and link member50 is also rotatably coupled to link member 46 by bearing 58 such thatlink member 50 and link member 46 may rotate relative to each otherabout floating axis D. In an alternate embodiment, link member 46 can becoupled at its end to a mid-portion of link member 50 and mouse 12 canbe coupled to the end of link member 50, as in a parallel linkagedisclosed in co-pending patent application Ser. No. 08/881,691. The axesB, C, and D are “floating” in the sense that they are not fixed in oneposition relative to ground surface 34 as is axis A. Since the onlyconnection of the four linkage members 44,46,48, and 50 to the groundmember 42 is through grounded bearing 52, only base members 44 and 48are grounded at axis A. Bearings 54, 56, and 58 are floating and notconnected to the ground member. Preferably, the axes B, C, and D are allsubstantially parallel to each other.

The bearings used on linkage 40 can be of a wide variety of types. Forexample, a ball bearing assembly that includes rows of individual ballsthat ride in V-shaped grooves (bearing races) can be used.Alternatively, a snap bearing can be used, in which a cylindrical bossin one member mates with a cylindrical cavity included in a differentmember. A different type of bearing includes a V -shaped notch whichmates with a V -shaped edge, where the angle between the sides of thenotch is greater than the angle between the sides of edge by an amountgreater than or equal to the desired range of angular motion provided bythe bearing. These types of bearings are described in greater detail inparent patent application Ser. No. 08/881,691. now U.S. Pat. No.6,100,874.

One advantage of the linkage 40 is that both base member 44 and basemember 48 are rotatable about the same axis A. This is important toallow the actuator and sensor design of the present invention, asdescribed in greater detail below. Also this configuration dramaticallysimplifies the kinematic equations required to describe the motion ofmouse 12 and provide forces to mouse 12 at the other end of the linkage,such kinematic equations being well known to those of skill in the art.In alternate embodiments, members 44 and 48 can be coupled to groundmember 42 at different locations and are rotatable about different axes,so that two grounded axes are provided, about which each member rotates.In yet other embodiments, the ground member 42 can be positioned betweenthe base members 44 and 48 on axis A.

Linkage 40 is formed as a five-member closed-loop chain. Each member inthe chain is rotatably coupled to two other members of the chain. Thefive-member linkage is arranged such that the members can rotate abouttheir respective axes to provide mouse 12 with two degrees of freedom,i.e., mouse 12 can be moved within a planar workspace defined by the x-yplane, which is defined by the x- and y-axes as shown in FIG. 2 b.Linkage 40 is thus a “planar” five-member linkage, since it allows themouse 12 to be moved within a plane. In addition, in the describedembodiment, the members 44, 46, 48 and 50 of linkage 40 are themselvesapproximately oriented in a plane.

Mouse 12 in the preferred embodiment is coupled to link members 46 and50 by rotary bearing 58. The mouse may also preferably rotate aboutfloating axis D and allow the user some flexible movement in the planarworkspace. The allowed rotation can provided to allow the user'shand/wrist to conveniently stay in one position during mouse movementwhile the mouse 12 rotates about axis D. In alternate embodiments, mouserotation about axis D may be sensed by sensors. In yet otherembodiments, forces can be provided on mouse 12 about axis D usingactuators. In the preferred embodiment, a pad or other support isprovided under mouse 12 to help support the mouse 12, and is describedin greater detail with respect to FIGS. 3 a-c.

In alternate embodiments, capstan drive mechanisms (not shown) can beprovided to transmit forces and motion between electromechanicaltransducers and the mouse 12. One example of the user of capstan drivesis shown in parent application Ser. No. 08/756,745, now U.S. Pat. No.5,825.308. In alternate embodiments, mouse 12 can also be moved in anadditional spatial degree of freedom using a rotatable carriage coupledbetween ground member 42 and base member 44. Such an embodiment isdescribed in greater detail with reference to co-pending patentapplication Ser. No. 08/736,161, now U.S. Pat. No. 5,828,197,incorporated by reference herein in its entirety.

Transducer system 41 is used to sense the position of mouse 12 in itsworkspace and to generate forces on the mouse 12. Transducer system 41preferably includes sensors 62 and actuators 64. The sensors 62collectively sense the movement of the mouse 12 in the provided degreesof freedom and send appropriate signals to the electronic portion ofinterface 14. Sensor 62 a senses movement of link member 48 about axisA, and sensor 62 b senses movement of base member 44 about axis A. Thesesensed positions about axis A allow the determination of the position ofmouse 12 using known constants such as the lengths of the members oflinkage 40 and using well-known coordinate transformations. Memberlengths particular to the interface device can be stored in local memory134, such as EEPROM, to account for manufacturing variations amongdifferent interface devices; alternatively, variations of the particularlink lengths from standard lengths can be stored in memory 134.

Sensors 62 are, in the described embodiment, grounded optical encodersthat sense the intermittent blockage of an emitted beam. A groundedemitter/detector portion 71 includes an emitter that emits a beam whichis detected by a grounded detector. A moving encoder disk portion or“arc” 74 is provided at the end of members 44 and 48 which each blockthe beam for the respective sensor in predetermined spatial incrementsand allows a processor to determine the position of the arc 74 and thusthe members 44 and 48 by counting the spatial increments. Also, avelocity of members 44 and 48 based on the speed of passing encodermarks can also be determined. In one embodiment, dedicated electronicssuch as a “haptic accelerator” may determine velocity and oracceleration, as disclosed in co-pending patent application Ser. No.08/804,535, filed Feb. 21, 1997, now U.S. Pat. No. 5,999,168, and herebyincorporated by reference herein. The operation of sensors 62 aredescribed in greater detail with reference to FIGS. 4 a-4 c.

Transducer system 41 also preferably includes actuators 64 to transmitforces to mouse 12 in space, i.e., in two (or more) degrees of freedomof the user object. The bottom housing plate 65 of actuator 64 a isrigidly coupled to ground member 42 (or grounded surface 34) and amoving portion of actuator 64 a (preferably a coil) is integrated intothe base member 44. The actuator 64 a transmits rotational forces tobase member 44 about axis A. The housing 65 of the grounded portion ofactuator 64 b is rigidly coupled to ground member 42 or ground surface34 through the grounded housing of actuator 64 b, and a moving portion(preferably a coil) of actuator 64 b is integrated into base member 48.Actuator 64 b transmits rotational forces to link member 48 about axisA. The combination of these rotational forces about axis A allows forcesto be transmitted to mouse 12 in all directions in the planar workspaceprovided by linkage 40 through the rotational interaction of the membersof linkage 40. The integration of the coils into the base members 44 and48 is advantageous to the present invention and is discussed below.

In the preferred embodiment, actuators 64 are electromagnetic voice coilactuators which provide force through the interaction of a current in amagnetic field. The operation of the actuators 64 is described ingreater detail below with reference to FIG. 4 a. In other embodiments,other types of actuators can be used, both active and passive, such asDC motors, pneumatic motors, passive friction brakes, passivefluid-controlled brakes, etc.

Additional and/or different mechanisms can also be employed to providedesired degrees of freedom to mouse 12. This rotational degree offreedom can also be sensed and/or actuated, if desired, to provide anadditional control degree of freedom. In other embodiments, a floatinggimbal mechanism can be included between mouse 12 and linkage 40 toprovide additional degrees of freedom to mouse 12. Optionally,additional transducers can be also added to interface 14 in provided oradditional degrees of freedom of mouse 12.

In an alternate embodiment, the mechanism 14 can be used for a 3-Dinterface device that allows a user to move a user object 12 in threedimensions rather than the 2-D planar workspace disclosed. For example,in one embodiment, the entire mechanism 14 can be made to rotate about agrounded axis, such as axis H extending through the actuators 64. Forexample, members (not shown) rigidly coupled to the actuators 64 or togrounded member 42 can extend in both directions along axis H and berotary coupled to a grounded surface at points H1 and H2. This providesa third (rotary) degree of freedom about axis H to the mouse device 11and to the user object 12. A motor can be grounded to the surface nearpoint H1 or H2 and can drive the mechanism 14 about axis H, and asensor, such as a rotary encoder, can sense motion in this third degreeof freedom. One reason for providing axis H through the magnetassemblies is to reduce the inertia and weight contributed to motionabout axis H by the magnet assemblies. Axis H can be provided in otherpositions in other embodiments. In such an embodiment, the user object12 can be a stylus, grip, or other user object. A third linear degree offreedom to mechanism 14 can be provided in alternate embodiments. Oneembodiment of a planar linkage providing three degrees of freedom isdisclosed in co-pending patent application Ser. No. 08/736,161 filedOct. 25, 1996, now U.S. Pat. No. 5,828,197, and hereby incorporated byreference herein.

FIG. 3 a is a perspective view of the grounded pad 32 and interface 14of the mouse system shown in FIG. 1, where the mouse 12 has beendetached from the mechanical linkage portion of the interface 14. Asshown, pad 32 preferably has a height h and is preferably hollow toallow the mechanical linkage to be positioned underneath the top surfaceof the pad 32. The bearing 58 is preferably arranged to extend through aguide opening 76 in the pad 32. An attachment plate 59 can be coupled tothe bearing 58 or rotatably coupled to a member of linkage 40 to providea point for attaching the mouse 12 to the linkage 40. Mouse 12 is thusreleasably coupled to attachment plate 59.

In the described embodiment, the pad 32 includes opening 76 in its topsurface that provides the limits to the workspace of the mouse 12.Bearing 58 and plate 59 preferably protrude through opening 76 such thata rounded portion 63 of plate 59 (provided under the flat plateportion), when moved in any degree of freedom of the mouse 12,eventually impacts a side of opening 76. The four sides to the opening76 thus provide limits to the workspace of the mouse 12 in the providedplanar degrees of freedom, i.e., a stop mechanism is provided thatlimits the movement of the mouse 12 as defined by the size of opening76. Opening 76 can be made any size desired. For example, in thedescribed embodiment, opening 76 has relatively small dimensions, suchas approximately 1⅜″ by 1⅛″. The size of the opening 76 is larger thanthe workspace of the mouse due to the size or radius of the roundedportion 63; thus, with the described opening size, a workspace of about1″ by ¾″ is obtained for the mouse 12 (which is considered at the centerof bearing 58 at axis D). This is typically adequate workspace for theuser to move the mouse and control a graphical object such as a cursoron a display screen. In addition, this size workspace has an aspectratio of 4:3, which is about the aspect ratio of a standard computermonitor, television, or other display screen. Preferably, the opening 76has rounded corners that are receptive to the rounded portion 63 ofplate 59, i.e., the rounded portion fits snugly into the rounded corner.In other embodiments, differently-sized guide openings 76 can beprovided for differently-sized workspaces, or other types of stops orguides can be used to prevent movement past predetermined limits; e.g.,guide opening 76 can be square shaped or otherwise shaped.

An aperture 77 can also be provided to route wires or cables frombuttons 15 on the mouse to the electronic portion 26 of the mouse device11. Alternatively, an inductive coil can be included in mouse 12 totransmit a signal when a button is activated, where the signal isreceived by another inductive coil in pad 32 which detects theactivation of buttons 15; the operation of such coils being well knownto those skilled in the art. Other wireless devices can also be used todetect the activation of buttons 15.

Preferably, the top surface of grounded pad 32 is a smooth material,such as a smooth slick plastic, to allow contact with portions of mouse12. Such contact provides support for mouse 12 when the mouse is movedin its planar workspace and allows the mouse to slide on the pad 32 withlittle friction. Since the linkage 40, when extended, is cantilevered ata large moment arm, a small force at the mouse end of the linkage cancreate a large torque that stresses the mounting or coupling 52 at axisA, which may cause the mounting or coupling to bend. Pad 32 (and roller61) thus balances the cantilever load by providing support to anypressure or force from the user in the z-direction on mouse 12 towardthe ground surface 34.

FIG. 3 b is a perspective view of the underside of mouse 12. Preferably,mouse 12 includes edges 78 provided as a lip to a hollow interior of themouse 12. Edges 78 are preferably coated with a Teflon or similar smoothmaterial, and are operative to contact the smooth top surface ofgrounded pad 32 to allow smooth movement of the mouse on the pad withlittle friction. In the described embodiment, mouse 12 is attached toplate 59 at apertures 79; for example, screws, posts, or other memberscan be inserted in the apertures of plate 59 and in apertures 79.

FIG. 3 c is a side elevational view of the mouse 12 coupled to linkage40 and contacting grounded pad 32. Preferably, grounded pad 32 includesa bottom support member 33 which contacts the grounded surface 34 andwhich is a hard smooth material (such as a lightweight metal). Linkage40 is preferably supported on the surface of member 33 by a roller 61.Roller 61, in the described embodiment, is a spherical ball-shapedpiece, e.g. having a surface made of Teflon, that is coupled to linkage40 and slides on the surface of member 33 when the mouse 12 is moved inits workspace. Alternatively, roller 61 can be rotatably coupled to thelinkage 40 and can rotate on the surface of member 33 when the mouse 12moves. Roller 61 thus supports the linkage 40 to receive the force fromthe user's hand on the mouse 12 without being stressed in thez-direction. The top surface of grounded pad 32 is not shown in FIG. 3c, but is also present such that the linkage 40 is positioned between anupper member 31 and member 33. The top surface of the upper memberreceives downward force on mouse 12 since the edges 78 of mouse 12 slideon this surface.

In other embodiments, other types of supports can be used to support thebearing 58 end of linkage 40 and which allow little friction betweenmouse and pad surface, such as a wheel, runner, etc. In otherembodiments, a pad or other support can be coupled to the underside oflinkage 40 such as at bearing 58, or at other areas between mouse 12 andgrounded surface 34.

FIG. 4 a is a top plan view of the mechanical portion 24 of theinterface device 11 showing the arrangement of sensors and actuators inthe device. The present invention preferably uses voice coil actuators,some embodiments of which are described in detail in patent applicationSer. No. 08/560,091, now U.S. Pat. No. 5,805,140, and Ser. No.08/881,691, now U.S. Pat. No. 6,100,874, incorporated by referenceherein.

Actuator 64 a drives base member 44. Base member 44 includes anintegrated coil portion 80 a on which a wire coil is provided. Coilportion 80 a may be of the same material as the remaining portion ofmember 44, or it may include a circuit board material (with a suitabledielectric, etc.) which promotes easy layout and etching of a coil onits surface. A wire coil 82 a of actuator 64 a is coupled to portion 80a of member 44. Preferably, wire coil 82 a includes at least two loopsof wire and is wound on a member portion 80 a, e.g. 222 loops, in thedescribed embodiment, are wound like a spool about a center portion ofportion 80 a. In alternative embodiments, coil 82 a can be provided as aprinted circuit board trace using well-known techniques. Fewer orgreater numbers of loops of coil 82 a can also be provided. Terminals(not shown) from wire coil 82 a to the electronic portion 26 of theinterface are provided so that host computer 18 or local microprocessor130 can control the direction and/or magnitude of the current in wirecoil. The coil 82 a can be made of aluminum, copper, or other conductivematerial.

The coil portion of actuator 64 a is integrated in base member 44 andpivots about A as the base member so pivots. This feature is one of theadvantages of the present invention. In typical prior art force feedbacklinkages, the actuator is a supported by a set of bearings which areseparate from the bearings which support a member of the linkage. In thedevice of the present invention, a single bearing 52 is a groundedbearing of the linkage and a guide bearing for the actuator 64, sincebase member 44 is part of both the linkage 40 and the actuator 64 a,This is more efficient than having separate bearings since one partserves two functions, which reduces the cost of the device and frictionamong the moving parts.

Voice coil actuator 64 a also includes a magnet assembly 88 a, which isgrounded and preferably includes four magnets 90 a and a flux plate 92a, as shown more clearly in the side elevation view of FIG. 4 b.Alternatively, two magnets 90 with two polarities each can be included.Each magnet has a polarity (north N or south S) on opposing sides of themagnet. Opposite polarities of magnets 90 face each other, such thatcoil 82 a is positioned between opposing polarities on either side ofthe coil. In an alternate embodiment, one or more magnets 90 can beprovided on one side of coil 82 a, and the other magnet 90 on theopposite side of the coil 82 a can be a piece of metal shaped similarlyto the magnet that provides a flux return path for the magnetic field(or the piece of metal can simply be plate 65); this can be more costefficient in some embodiments. When magnets are provided on only oneside of the coil, the magnets are made larger to provide the same amountof force as if two sides of (smaller) magnets are present. Preferably, asmall amount of space is provided between the magnet surfaces and thecoil 84 a/member 44. The magnetic flux guide surrounding the magnets isprovided as, in the described embodiment, metal plate 92 a provided onthe top side of the magnets 90 a and metal base plate 65 provided on thebottom side of the actuator 64 a. Plates 92 a and 65 house actuator 64 ato allow magnetic flux from magnets 90 a to travel from one end of themagnets 90 a to the other end, as is well known to those skilled in theart.

The magnetic fields from magnets 90 a interact with a magnetic fieldproduced from wire coil 82 a when current is flowed in coil 82 a,thereby producing forces on member 44. Coil 82 a and member 44 arepositioned between magnets 90 a and are thus affected by the magneticfields of opposing magnets. As an electric current I is flowed throughthe coil 82 a via electrical terminals, a magnetic field is generatedfrom the current and configuration of coil 82 a, The magnetic field fromthe coil then interacts with the magnetic fields generated by magnets 90a to produce a force on member 44 about axis A. The magnitude orstrength of the force is dependent on the magnitude of the current thatis applied to the coil, the number of loops in the coil, and themagnetic field strength of the magnets. The direction of the forcedepends on the direction of the current in the coil; the force can beapplied in either direction about axis A. By applying a desired currentmagnitude and direction, force can be applied to member 44 and throughmember 46, thereby applying force to mouse 12 in the x-y plane workspaceof the mouse. A voice coil actuator can be provided for each degree offreedom of the mechanical apparatus to which force is desired to beapplied.

Thus, the magnetic fields from magnets 90 a interact with the magneticfield produced from wire coil 82 a when current is flowed in coil 82 ato produce a planar force to the coil portion 80 a of the member 44. Thecoil portion 80 a and wire coil 82 a are moved about axis A until themember 44 contacts the stop supports 91 provided at each end of therange of motion of the member 44 about axis A (guide opening 76 may alsolimit the range of the actuators in some embodiments). Alternatively,the physical stops to movement can be omitted, where the force on member44 is gradually decreases and ceases as the coil portion 80 a moves outfrom between the magnets 90 a.

Voice coil actuator 64 b operates similarly to actuator 64 a. A currentis flowed through coil 82 b to cause interaction with a magnetic fieldfrom magnets 90 b of magnet assembly 88 b which is similar to the magnetassembly 88 a described above, and inducing magnetic forces that rotateportion 80 b of base member 48 about axis A. This causes forces to beapplied to mouse 12 in the x-y workspace of the mouse through the member48 and member 50. It should be noted that magnet assembly 88 b includesa different flux return plate 92 b on the top of actuator 64 b, butpreferably uses the same base plate 65 for the flux return path on thebottom of actuator 64 b. This conveniently allows a single plate 65 tobe used as a flux return path for both actuators 64 a and 64 b.

In the described embodiment, magnet assemblies 88 a and 88 b arepreferably positioned adjacent to each other to provide a low profile.This allows housing 21 to have a low profile as well, and permits themouse interface device 11 to be placed conveniently in locations on adesktop near a host computer. In addition, the low profile embodimentallows easier and thus cheaper assembly of the interface device 11. Inan alternate embodiment, such as disclosed in parent application Ser.No. 08/881,691, now U.S. Pat. No. 6,100,874, the grounded magnetassemblies can be stacked, one on top of the other. For example, a platecan be provided between the actuators and a portion of the flux pathbetween the two magnetic assemblies can be shared by both actuators.

An important advantage of the present invention is the linkage 40 whichprovides a single rotation axis A for both base members 44 and 48. Sincethe base members 44 and 48 of the present invention also integrate themoving wire coil portion of the actuators, the moving portion of theactuators thus also rotate about the same axis A. The members 44 and 48,in effect, act as guides for the movement of the coils.

A further advantage of integrating the coils 82 with the grounded basemembers 44 and 48 is that mechanical advantage is gained from the lengthof the base members. The two base members 44 and 48 are coupled to asingle pivot point at a mid-point of the base members, where one end ofeach base member includes a coil; the coils are thus spaced from thepivot. The mechanical advantage is derived from the ratio of thedistance from the coil to the rotation point (axis A) and the distancefrom the rotation point to the other end of the member at the bearing 54or 56. The base members 44 and 48 thus act as lever arms, and the leverarm distance provides mechanical advantage to forces generated by theactuators 64 and transmitted through linkage 40 to mouse 12.

The voice coil actuators 64 a and 64 b have several advantages. One isthat a limited movement range is defined for a particular degree offreedom of mouse 12 by the length of the magnets 90 and the stops 91.Also, control of the voice coil actuator is simpler than other actuatorssince output torque is a substantially linear function of input coilcurrent. In addition, since voice coil actuators do not requiremechanical or electrical commutation as do other types of motors, thevoice coil actuator has a longer life expectancy, less maintenance, andquiet operation. The actuation is nearly frictionless, resulting ingreater haptic fidelity and smoother feel to the user. The parts forvoice coil actuators are inexpensive to produce and are readilyavailable, such as voice coil driver chips, resulting in a low cost wayto provide realistic force feedback.

In the particular embodiment disclosed, another advantage relates to thegrounding of both actuators 64 a and 64 b. The heavy portion of theelectromagnetic actuators (the magnets and the housing for the magnets)are grounded, while the lighter portion of the actuators (the coils) arenot grounded and ride on members of the linkage. Since both actuatorsare coupled to ground, the user moving mouse 12 does not carry the heavyportion of the actuators or feel their weight, thus promoting realisticforce feedback using smaller magnitude forces, and allowing theinterface system 10 to be a low cost device.

In alternate embodiments, the mechanical linkage 40 can be replaced byother mechanical linkages or structures which can provide desireddegrees of freedom. For example, portions 80 a and 80 b of the members44 and 48 can be linearly moved through sensors 62 and linear actuatorscan provide forces in linear degrees of freedom of mouse 12. In otherembodiments in which rotary degrees of freedom are desired for a userobject, linear degrees of freedom can be provided in the X and Y axesand can be converted to two rotary degrees of freedom for a user object12 using a ball joint, pendulum, or other mechanism.

In the preferred embodiment, separate sensors 62 are used to detect theposition of mouse 12 in its planar workspace, as described below.However, in alternate embodiments, the voice coil actuators 64 a and 64b can also be used as sensors to sense the velocity of the members 44and 48 about axis A and/or to derive the position and other values ofmouse 12 in its planar workspace from the sensed velocity. Motion ofcoil 82 a within the magnetic field of magnets 90 a induces a voltageacross the coil 82 a and this voltage can be sensed by ananalog-to-digital converter or other electronics, for example. Thisvoltage is proportional to the velocity of the coil and portion 80 ofthe rotating member about axis A. From this derived velocity,acceleration or position of the members 44 and 48 can be derived usingtiming information, for example, from a clock (described below).Alternatively, one or more additional coils similar to coil 82 a andhaving an appropriate number of loops can be placed on member portions80 which are dedicated to sensing voltage to derive position, velocity,or acceleration as described above. However, voice coil actuatorsproduce analog values, which are subject to noise, and the filtering ofsuch noise typically requires expensive components; thus, in thepreferred low-cost embodiment, separate digital sensors are used tosense the position, motion, etc. of mouse 12.

In other embodiments, additional coils can also be provided foractuators 64 to provide different magnitudes of forces. For example,coil 82 a can include multiple separate “sub-coils” of wire. A set ofterminals can be included for each different sub-coil. Each sub-coil caninclude a different number of loops on portion 80 and therefore willgenerate a different magnetic field and thus a different magnitude offorce when a constant current I is flowed through the sub-coil. Thisscheme is also applicable to a digital system using on and off switches.This embodiment is described in greater detail in co-pending applicationSer. No. 08/560,091, now U.S. Pat. No. 5,805,140.

In other embodiments, linear actuators can be used to provide forces inprovided degrees of freedom. Some examples of linear electromagneticactuators are described in patent application Ser. No. 08/560,091, nowU.S. Pat. No. 5,805,140. Also, other types of actuators may be used inplace of or in addition to actuators 64 of the interface device. Forexample, the linkage can be driven by a direct drive DC motor or ageared/belt DC motor to provide mechanical advantage.

Sensors 62 a and 62 b are provided to sense the position of mouse 12 inits planar workspace. In the described embodiment, a groundedemitter/detector assembly 71 a is provided for sensor 62 a and agrounded emitter/detector assembly 71 b is provided for sensor 62 b.Preferably, the emitter and detector in each assembly 71 are provided onthe same side of the encoder arc 74; for example, they are provided onthe upper side of the arc in the described embodiment. The emitterportion emits a beam that impinges on the encoder arc 74. Encoder arc 74includes a number of reflective line marks 75 which are very closelyspaced together and are separated by a different, non-reflectivematerial (the width and spacing of marks 75 are exaggerated in FIG. 4 afor clarity). Thus, the beam from the emitter is reflected to thedetector of the assembly 71 when a reflective mark is positioned at thepoint where the beam impinges the arc 74. When the encoder arc 74 movessuch that a non-reflective portion is at the beam impinging location,the beam is not reflected and the detector does not detect the beam.Thus, the detector senses each reflective mark as it passes through thebeam when the encoder arc 74 is moved on member 44 or 48. The detectoroutputs a sensor signal or pulse indicating each time a mark passesthrough the beam. Since sensor 62 in the described embodiment is aquadrature encoder, the detector preferably includes 2 individual spacedapart detectors providing four times the resolution, as is well known tothose skilled in the art. A suitable optical quadrature encoder whichperforms the functions described above is model HEDR-8100 from HewlettPackard. Other types of emitter-detector pairs can also be used in otherembodiments.

The more closely spaced the marks are, the finer the resolution of thesensor 62. For example, in the preferred embodiment, a mark spacing onthe arc can be about 200-500 lines per inch, providing four times thatresolution in a quadrature encoder. By counting the number of markspassing through the beam, the position of the member 44 (for sensor 62a) or member 48 (for sensor 62 b) about axis A is known. The velocityand/or acceleration of the members 44 and 48 can also be derived fromthe position data and timing information, as described above. From thepositions of the base member 48 and the base member 44 about axis A, theposition of mouse 12 can be determined.

Alternate embodiments can include sensors 62 a and/or 62 b (and oractuators 64) in different positions. For example, the emitter anddetector can be on opposite sides of arc 74. In yet other embodiments,other types of sensors can be used. For example, a single sensor can beused to detect motion in both degrees of freedom. Alternatively a rotarysensor including a friction wheel can be provided; or, a planar sensoror “touch pad” having rectangular sensing area and a pointer can be usedto sense the x and y position and/or pressure in the z-direction. Alight pipe can also be used to direct the beam emitted from the emitterto the detector for sensor 62 a and or 62 b. These alternate embodimentsare described in detail in parent patent application Ser. No.08/881,691, now U.S. Pat. No. 6,100,874, incorporated by referenceherein.

In FIG. 4 a, the mouse 12 (not shown) coupled to bearing 58 isapproximately at a neutral position approximately at the center of themouse workspace where the members 44 and 46 are approximatelysymmetrical in position with the members 48 and 50 across the axisextending through axes A and D. Coil portions 80 a and 80 b of members44 and 48 are approximately centered in the range of the optical encodersensors 62 a and 62 b and within the range of magnet assemblies 88 a and88 b.

FIG. 4 c is a detailed top plan view of the mechanical portion 24 of themouse interface device 11 similar to FIG. 4 a and showing the linkage 40in a different position. In FIG. 4 c, the mouse 12 (not shown) and axisD have been moved in the x-y plane of the workspace of the mouse. Themovement of the mouse has been limited by the guide opening 76, whereplate 59 has engaged the sidewall of the upper-right corner area ofguide opening 76. and stops any further movement in the forwardy-direction and right x-direction. Linkage 40 and portions 80 of members44 and 48 have moved in a counterclockwise direction about axis Acompared to their positions in FIG. 4 a. Sensor 62 a has detected themovement of portion 80 a by sensing the movement of the marks 75 onencoder arc 74 a. Likewise, sensor 62 b has detected the movement ofportion 80 b by sensing the movement of the encoder arc 74 b.

FIG. 5 a is a top plan view of an alternate embodiment 62′ of thesensors 62 a and 62 b. In the above embodiment, the encoder arc 74provided on the edge of member 44 and member 48 includes a plurality ofspaced apart reflective line marks 75 which are positionedperpendicularly to the direction of rotational travel of the arc 74. Inthe embodiment of FIG. 5 a, an arc 74′ is also provided in a locationsimilar to the arc 74 of FIG. 4 a. For example, arc 74′ is provided onthe edge of member 48 (or member 44) at the edge of actuator portion 80b. Arc 74′ is thus operative to rotate about axis A with member 48. Arc74′ includes an opaque portion 90 and a transparent strip 92. Strip 92is positioned such that, at end 94 of the arc 74′, the strip 92 ispositioned at its closest point to axis A. At end 96 of the arc 74′, thestrip 92 is positioned at its furthest distance from axis A. The strip92 extends between ends 94 and 96 in a continuous smooth curve as shownin FIG. 5 a. Strip 92 is referred to herein as “skewed,” indicating itsdistance from the center of rotation A varies along its length.

Sensor 62′ also includes an emitter 97 and a detector 98, as moreclearly shown in the side elevational view of FIG. 5 b. Emitter 97 ispositioned above arc 74′ and can include a photo diode or other sourceof a beam of electromagnetic energy. The beam is directed towarddetector 98, which is positioned on the other side of arc 74′. Detector98 preferably is a lateral effect photodiode, photosensitive strip,other type of differencing sensor, or other type of sensor that candetect the location of the emitted beam on the detector. In thedescribed embodiment, the detector 98 need only detect the position ofthe beam in one dimension, e.g. parallel to an axis G. The emitter anddetector positions can be reversed in alternate embodiments.

The sensor 62′ operates as follows. A beam that is wide enough to coverthe entire length of the detector is emitted from emitter 97.Transparent strip 92 allows a portion of the beam to pass through at theposition of the strip above the detector 98, while the opaque portion 90blocks the other portions of the beam. The detector senses the locationof the transmitted portion of the beam through the strip on thedetector. When the arc 74′ moves, the strip 92 changes its positionalong axis G, so that a different position of the transmitted portion ofthe beam is detected on detector 98. Thus, each incremental position ofarc 74′ provides the beam on a slightly different location on thedetector 98, allowing the detector to sense the position of the arc 74′and the member 48. For example, in the position of FIG. 5 a, the strip92 is located at about the center position of the detector on axis G. Inthe dashed line position 99 of the arc 74′, the strip 92 and beam ispositioned much closer to the end of the detector 98. By transmittingthis data to the microprocessor or host computer, the position of thearc and member 48 can be determined based on the known movement range ofthe arc and the corresponding locations of the beam at the extremepositions of that range.

In an alternate embodiment, sensor 62′ can use reflection similar to thesensor 62 described with reference to FIG. 4 a. Thus, both emitter anddetector can be positioned on the same side of arc 74′. The opaqueportion 90 can be implemented as transparent or absorbent material,while the transparent strip 92 can be implemented as a reflective stripsimilar to the line markings 75 of FIG. 4 a. Thus, the beam from theemitter 97 will be reflected to the detector 98 when the beam impingeson the strip 92, where the location of the strip along axis G will causethe reflected beam to have a unique detected position on the detector 98based on the position of the arc 74′ about axis A. Portions of theemitted beam that impinge on the absorbent or transparent portions 90will not be reflected and thus not detected by detector 98.

FIG. 6 is a block diagram illustrating the electronic portion ofinterface 14 and host computer 18 suitable for use with the presentinvention. Mouse interface system 10 includes a host computer 18,electronic interface 26, mechanical portion 24, and mouse or other userobject 12. Electronic interface 26, mechanical portion 24, and mouse 12can also collectively be considered the “force feedback interfacedevice” 11 that is coupled to the host computer. A similar system isdescribed in detail in co-pending patent application Ser. No.08/566,282, now U.S. Pat. No. 5,734,373, which is hereby incorporated byreference herein in its entirety.

As explained with reference to FIG. 1, computer 18 is preferably apersonal computer, workstation, video game console, or other computingor display device. Host computer system 18 commonly includes a hostmicroprocessor 108, random access memory (RAM) 110, read-only memory(ROM) 112, input/output (I/O) electronics 114, a clock 116, a displaydevice 20, and an audio output device 118. Host microprocessor 108 caninclude a variety of available microprocessors from Intel, AMD,Motorola, or other manufacturers. Microprocessor 108 can be singlemicroprocessor chip, or can include multiple primary and/orco-processors. Microprocessor 108 preferably retrieves and storesinstructions and other necessary data from RAM 110 and ROM 112 as iswell known to those skilled in the art. In the described embodiment,host computer system 18 can receive sensor data or a sensor signal via abus 120 from sensors of system 10 and other information. Microprocessor108 can receive data from bus 120 using I/O electronics 114, and can useI/O electronics to control other peripheral devices. Host computersystem 18 can also output commands to interface device 104 via bus 120to cause force feedback for the interface system 10.

Clock 116 is a standard clock crystal or equivalent component used byhost computer 18 to provide timing to electrical signals used by hostmicroprocessor 108 and other components of the computer system 18. Clock116 is accessed by host computer 18 in the control process of thepresent invention to provide timing information that may be necessary indetermining force or position, e.g., calculating a velocity oracceleration from position values.

Display device 20 is described with reference to FIG. 1. Audio outputdevice 118, such as speakers, can be coupled to host microprocessor 108via amplifiers, filters, and other circuitry well known to those skilledin the art. Host processor 108 outputs signals to speakers 118 toprovide sound output to the user when an “audio event” occurs during theimplementation of the host application program. Other types ofperipherals can also be coupled to host processor 108, such as storagedevices (hard disk drive, CD ROM drive, floppy disk drive, etc.),printers, and other input and output devices.

Electronic interface 26 is coupled to host computer system 18 by abi-directional bus 120. The bi-directional bus sends signals in eitherdirection between host computer system 18 and the interface device 104.Bus 120 can be a serial interface bus providing data according to aserial communication protocol, a parallel bus using a parallel protocol,or other types of buses. An interface port of host computer system 18,such as an RS232 serial interface port, connects bus 120 to hostcomputer system 18. In another embodiment, an additional bus can beincluded to communicate between host computer system 18 and interfacedevice 11.

One preferred serial interface bus used in the present invention is theUniversal Serial Bus (USB). The USB standard provides a relatively highspeed serial interface that can provide force feedback signals in thepresent invention with a high degree of realism. USB can also sourcepower to drive actuators 64 and other devices of the present invention.Since each device that accesses the USB is assigned a unique USB addressby the host computer, this allows multiple devices to share the samebus. In addition, the USB standard includes timing data that is encodedalong with differential data.

Electronic interface 26 includes a local microprocessor 130, local clock132, local memory 134, sensor interface 136, and actuator interface 138.Interface 26 may also include additional electronic components forcommunicating via standard protocols on bus 120. In various embodiments,electronic interface 26 can be included in mechanical portion 24, inhost computer 18, or in its own separate housing. Different componentsof interface 26 can be included in portion 24 or host computer 18 ifdesired.

Local microprocessor 130 preferably coupled to bus 120 and may beclosely linked to mechanical portion 24 to allow quick communicationwith other components of the interface device. Processor 130 isconsidered “local” to interface device 11, where “local” herein refersto processor 130 being a separate microprocessor from any processors 108in host computer 18. “Local” also preferably refers to processor 130being dedicated to force feedback and sensor I/O of the interface system10, and being closely coupled to sensors and actuators of the mechanicalportion 24, such as within the housing of or in a housing coupledclosely to portion 24. Microprocessor 130 can be provided with softwareinstructions to wait for commands or requests from computer host 18,parse/decode the command or request, and handle/control input and outputsignals according to the command or request. In addition, processor 130preferably operates independently of host computer 18 by reading sensorsignals and calculating appropriate forces from those sensor signals,time signals, and force processes selected in accordance with a hostcommand, and output appropriate control signals to the actuators.Suitable microprocessors for use as local microprocessor 130 include theMC68HC711E9 by Motorola and the PIC16C74 by Microchip, for example.Microprocessor 130 can include one microprocessor chip, or multipleprocessors and/or co-processor chips. In other embodiments,microprocessor 130 can include digital signal processor (DSP)functionality.

For example, in one host-controlled embodiment that utilizesmicroprocessor 130, host computer 18 can provide low-level forcecommands over bus 120, which microprocessor 130 directly transmits tothe actuators. In a different local control embodiment, host computersystem 18 provides high level supervisory commands to microprocessor 130over bus 120, and microprocessor 130 manages low level force controlloops to sensors and actuators in accordance with the high levelcommands and independently of the host computer 18. In the local controlembodiment, the microprocessor 130 can process inputted sensor signalsto determine appropriate output actuator signals by following theinstructions of a “force process” that may be stored in local memory andincludes calculation instructions, formulas, force magnitudes, or otherdata. The force process can command distinct force sensations, such asvibrations, textures, jolts, or even simulated interactions betweendisplayed objects. An “enclosure” host command can also be provided,which causes the microprocessor to define a box-like enclosure in agraphical environment, where the enclosure has sides characterized bywall and texture forces, as described in co-pending application Ser. No.08/881,691, now U.S. Pat. No. 6,100,874. The host can send the localprocessor a spatial layout of objects in the graphical environment sothat the microprocessor has a mapping of locations of graphical objectslike enclosures and can determine interactions with the cursor locally.Force feedback used in graphical environments is described in greaterdetail in co-pending patent application Ser. Nos. 08/571,606, now U.S.Pat. No. 6,219,032, Ser. No. 08/756,745, now U.S. Pat. No. 5,825,308,and Ser. No. 08/924,462, now U.S. Pat. No. 6,252,579, all of which areincorporated by reference herein.

Sensor signals used by microprocessor 130 are also reported to hostcomputer system 18, which updates a host application program and outputsforce control signals as appropriate. For example, if the user movesmouse 12, the computer system 18 receives position and/or other signalsindicating this movement and can move a displayed cursor in response.These embodiments are described in greater detail in co-pendingapplication Ser. No. 08/534,791, now U.S. Pat. No. 5,739,811, and Ser.No. 08/566,282, now U.S. Pat. No. 5,734,373. In an alternate embodiment,no local microprocessor 130 is included in interface system 10, and hostcomputer 18 directly controls and processes all signals to and from theinterface 26 and mechanical portion 24.

A local clock 132 can be coupled to the microprocessor 130 to providetiming data, similar to system clock 116 of host computer 18; the timingdata might be required, for example, to compute forces output byactuators 64 (e.g., forces dependent on calculated velocities or othertime dependent factors). In alternate embodiments using the USBcommunication interface, timing data for microprocessor 130 can beretrieved from the USB interface. Local memory 134, such as RAM and/orROM, is preferably coupled to microprocessor 130 in interface 26 tostore instructions for microprocessor 130 and store temporary and otherdata. Microprocessor 130 may also store calibration parameters in alocal memory 134 such as an EEPROM. As described above, link or memberlengths or manufacturing variations and/or variations in coil winding ormagnet strength can be stored. If analog sensors are used, adjustmentsto compensate for sensor variations can be included, e.g. implemented asa look up table for sensor variation over the user object workspace.Memory 134 may be used to store the state of the force feedback device,including a reference position, current control mode or configuration,etc.

Sensor interface 136 may optionally be included in electronic interface26 to convert sensor signals to signals that can be interpreted by themicroprocessor 130 and/or host computer system 18. For example, sensorinterface 136 can receive signals from a digital sensor such as anencoder and convert the signals into a digital binary numberrepresenting the position of a member or component of mechanicalapparatus 14. An analog to digital converter (ADC) in sensor interface136 can convert a received analog signal to a digital signal formicroprocessor 130 and/or host computer 18. Such circuits, or equivalentcircuits, are well known to those skilled in the art. Alternately,microprocessor 130 can perform these interface functions without theneed for a separate sensor interface 136. Or, sensor signals from thesensors can be provided directly to host computer system 18, bypassingmicroprocessor 130 and sensor interface 136. Other types of interfacecircuitry 136 can also be used. For example, an electronic interface isdescribed in U.S. Pat. No. 5,576,727, which is hereby incorporated byreference herein.

Actuator interface 138 can be optionally connected between the actuators64 and microprocessor 130. Interface 138 converts signals frommicroprocessor 130 into signals appropriate to drive the actuators.Interface 138 can include power amplifiers, switches, digital to analogcontrollers (DACs), and other components. Such interfaces are well knownto those skilled in the art. In alternate embodiments, interface 138circuitry can be provided within microprocessor 130 or in the actuators.

In the described embodiment, power is supplied to the actuators 64 andany other components (as required) by the USB. Since the electromagneticactuators of the described embodiment have a limited physical range andneed only output, for example, about 3 ounces of supply thus need not beincluded in interface system 10 or as an external power adapter. Forexample, one way to draw additional power from the USB is to configuredevice 11 to appear as more than one peripheral to host computer 18; forexample, each provided degree of freedom of mouse 12 can be configuredas a different peripheral and receive its own allocation of power.Alternatively, power from the USB can be stored and regulated by device11 and thus used when needed to drive actuators 64. For example, powercan be stored over time and then immediately dissipated to provide ajolt force to the user object 12. A battery or a capacitor circuit, forexample, can store energy and discharge or dissipate the energy whenpower is required by the system and or when enough power has beenstored. Alternatively, a power supply 140 can optionally be coupled toactuator interface 138 and/or actuators 64 to provide electrical power.Power supply 140 can be included within the housing of device 11, or canbe provided as a separate component, for example, connected by anelectrical power cord. The power storage embodiment described above,using a battery or capacitor circuit, can also be used in non-USBembodiments to allow a smaller power supply 140 to be used.

Mechanical portion 24 is coupled to electronic portion 26 and preferablyincludes sensors 62, actuators 64, and linkage 40. These components aredescribed in detail above. Sensors 62 sense the position, motion, and/orother characteristics of mouse 12 along one or more degrees of freedomand provide signals to microprocessor 130 including informationrepresentative of those characteristics. Typically, a sensor 62 isprovided for each degree of freedom along which mouse 12 can be moved,or, a single compound sensor can be used for multiple degrees offreedom. Example of sensors suitable for embodiments described hereinare optical encoders, as described above. Linear optical encoders maysimilarly sense the change in position of mouse 12 along a linear degreeof freedom. Alternatively, analog sensors such as potentiometers can beused. It is also possible to use non-contact sensors at differentpositions relative to mechanical portion 24, such as Hall effectmagnetic sensors for detecting magnetic fields from objects, or anoptical sensor such as a lateral effect photo diode having anemitter/detector pair. In addition, velocity sensors (e.g., tachometers)for measuring velocity of mouse 12 and/or acceleration sensors (e.g.,accelerometers) for measuring acceleration of mouse 12 can be used.Furthermore, either relative or absolute sensors can be employed.

Actuators 64 transmit forces to mouse 12 in one or more directions alongone or more degrees of freedom in response to signals output bymicroprocessor 130 and/or host computer 18, i.e., they are “computercontrolled.” Typically, an actuator 64 is provided for each degree offreedom along which forces are desired to be transmitted. Actuators 64can include active actuators, such as linear current control motors,stepper motors, pneumatic/hydraulic active actuators, a torquer (motorwith limited angular range), a voice coil actuator as described in theembodiments above, and/or other types of actuators that transmit a forceto an object. Passive actuators can include magnetic particle brakes,friction brakes, or pneumatic/hydraulic passive actuators, and generatea damping resistance or friction in a degree of motion. For example, anelectrorheological fluid can be used in a passive damper, which is afluid that has a viscosity that can be changed by an electric field.Likewise, a magnetorheological fluid can be used in a passive damper,which is a fluid that has a viscosity that can be changed by a magneticfield. These types of dampers can be used instead of or in addition toother types of actuators in the mouse interface device. In yet otherembodiments, passive damper elements can be provided on the bearings ofportion 24 to remove energy from the system and intentionally increasethe dynamic stability of the mechanical system. In addition, in voicecoil embodiments, multiple wire coils can be provided, where some of thecoils can be used to provide back EMF and damping forces. In someembodiments, all or some of sensors 62 and actuators 64 can be includedtogether as a sensor/actuator pair transducer.

Mechanism 40 is preferably the five-member linkage 40 described above,but can also be one of several types of mechanisms. For example,mechanisms disclosed in co-pending patent application Ser. No.08/374,288, now U.S. Pat. No. 5,731,804, Ser. No. 08/400,233, now U.S.Pat. No. 5,767,839, Ser. No. 08/489,068, now U.S. Pat. No. 5,721,566,Ser. No. 08/560,091, now U.S. Pat. No. 5,805,140, Ser. No. 08/623,660,now U.S. Pat. No. 5,619,898, Ser. No. 08/664,086, now U.S. Pat. No.6,028,593, Ser. No. 08/709,012, now U.S. Pat. No. 6,024,576, and08/736,161, now U.S. Pat. No. 5,828,197, all incorporated by referenceherein, can be included. Mouse 12 can alternatively be a puck, joystick,or other device or article coupled to linkage 40, as described above.

Other input devices 141 can optionally be included in system 10 and sendinput signals to microprocessor 130 and/or host computer 18. Such inputdevices can include buttons, such as buttons 15 on mouse 12, used tosupplement the input from the user to a GUI, game, simulation, etc.Also, dials, switches, voice recognition hardware (with softwareimplemented by host 18), or other input mechanisms can be used.

Safety or “deadman” switch 150 is preferably included in interfacedevice to provide a mechanism to allow a user to override and deactivateactuators 64, or require a user to activate actuators 64, for safetyreasons. In the preferred embodiment, the user must continually activateor close safety switch 150 during manipulation of mouse 12 to activatethe actuators 64. If, at any time, the safety switch is deactivated(opened), power is cut to actuators 64 (or the actuators are otherwisedeactivated) while the safety switch is open. For example, oneembodiment of safety switch is a mechanical or optical switch located onmouse 12 or on a convenient surface of a housing 21. For example, whenthe user covers an optical safety switch with a hand or finger, thesensor of the switch is blocked from sensing ambient light, and theswitch is closed. The actuators 64 thus will function as long as theuser covers the switch. Other types of safety switches 150 can also beused, such as an electrostatic contact switch can be used to sensecontact of the user. The safety switch can be provided between theactuator interface 138 and actuators 64 as shown in FIG. 6; or, theswitch can be placed elsewhere. In some embodiments, the state of thesafety switch is provided to the microprocessor 130 to provide furthercontrol over output forces. In addition, the state of the safety switchcan be sent to the host 18. In yet other embodiments, a second switchcan be provided to allow the user to turn off output forces of interfacedevice 11 when desired, yet still operate the interface as an inputdevice. The host 18 need not send force feedback commands when such asecondary switch has turned off forces.

In one embodiment, mouse 12 includes a hand weight safety switch. Thesafety switch preferably deactivates any generated forces on the mousewhen the mouse is not in use and/or when the user desires to deactivateoutput forces. This is a safety feature that prevents the mouse 12 fromunexpectedly moving and impacting the user when the user is notcontrolling the user object. Electric contact switches, a z-axis forcesensor, piezo electric sensors, force sensitive resistors, or straingauges can be used. The hand-weight safety switch can also be used tosupplement a different type of safety switch.

In some embodiments of interface system 10, multiple mechanicalapparatuses 102 and/or electronic interfaces 100 can be coupled to asingle host computer system 18 through bus 120 (or multiple buses 120)so that multiple users can simultaneously interface with the hostapplication program (in a multi-player game or simulation, for example).In addition, multiple players can interact in the host applicationprogram with multiple interface systems 10 using networked hostcomputers 18, as is well known to those skilled in the art.

While this invention has been described in terms of several preferredembodiments, it is contemplated that alterations, permutations andequivalents thereof will become apparent to those skilled in the artupon a reading of the specification and study of the drawings. Forexample, other types of mechanical linkages can be provided between themouse 12 and the electronic portion of the interface 14. In addition,other types of actuators, sensors, and user objects can be used in otherembodiments. Furthermore, certain terminology has been used for thepurposes of descriptive clarity, and not to limit the present invention.It is therefore intended that the following appended claims include allsuch alterations, permutations, and equivalents as fall within the truespirit and scope of the present invention.

1. A device, comprising: at least one sensor configured to detect one ofa motion and a position of a manipulandum, a location of a cursordisplayed by a host computer in communication with the device beingresponsive to the said manipulation of the said manipulandum; at leastone actuator operative to output a force feedback sensation; and a forcefunctionality button provided on the device and manipulatable by a user,said force functionality button configured to toggle an output of theactuator when the cursor encounters a designated graphical object orregion upon a graphical display of the host computer, the toggling basedon the manipulation of said force functionality button by the user,wherein said force feedback sensation is applied by the said actuatorwhen or after said force functionality button is depressed by the user,said force feedback sensation being associated with the cursor crossinga border of a click surface, said force feedback sensation being aresistive spring force resisting motion of the cursor into the clicksurface.
 2. The device of claim 1, further comprising: an indexingbutton provided on the device, said indexing button enabling an indexingmode.
 3. The device of claim 1, wherein said at least one actuator isconfigured to be controlled by a local processor in response to signalsreceived from the host computer.
 4. The device of claim 1, wherein theclick surface is configured to be selected by the cursor when the cursormoves a predetermined threshold distance into the click surface.
 5. Thedevice of claim 1, wherein the spring force enables an isometric controlmode, wherein an amount of penetration of the manipulandum against thespring force is configured to control a speed of scrolling of a documentdisplayed by the host computer.
 6. The device of claim 1, said forcefuntionality button being a first button that can function as a firstforce functionality button providing a first force functionality mode,the device further comprising: a second button on said device that canfunction as a second force functionality button, said second forcefunctionality button manipulatable by the user, wherein the device isconfigured so that manipulation of said second force functionalitybutton causes a second force functionality mode of the device to beactive, the second force functionality mode being different from thefirst force functionality mode.
 7. The device of claim 6, wherein saidsecond force functionality button toggles a pressure scrolling mode, aspring force being output in the pressure scrolling mode on themanipulandum opposing the movement of the cursor through a border of theclick surface, a rate of scrolling of an object being adapted to becontrolled by an amount of penetration of the manipulandum against thespring force.
 8. A method, comprising: providing a force feedbackinterface peripheral including at least one sensor and at least oneactuator, the actuator operative to output forces to a user of the forcefeedback interface peripheral; providing a button on the force feedbackinterface peripheral that can function as a force functionality button,the force functionality button manipulatable by the user; enabling acursor to be controlled on a graphical display of a host computer, adisplayed location of the cursor being responsive to manipulation of aportion of the force feedback interface peripheral; and enabling theforce functionality button to toggle the application of a force feedbacksensation by the at least one actuator when the cursor encounters adesignated graphical object or region upon the graphical display of thehost computer, the toggling responsive to manipulation of the forcefunctionality button, the force feedback sensation being associated withthe cursor crossing a border of a click surface, and being a resistivespring force resisting motion of the cursor into the click surface. 09.The method of claim 8, further comprising selecting the click surfacebased on movement of the cursor a predetermined threshold distance intothe click surface.
 10. The method of claim 8, further comprising:enabling an isometric control mode, and amount of penetration of themanipulandum against the spring force controlling a speed of scrollingof a document displayed by the host computer.
 11. The method of claim 8,further comprising: providing an indexing button on the force feedbackinterface peripheral, the indexing button enabling an indexing mode. 12.The method of claim 8, wherein the actuator is configured to becontrolled by a local processor in response to signals recieved from thehost computer.
 13. The method of claim 8, the force functionality buttonbeing a first force functionality button, and the method furthercomprising: providing a second button on the force feedback interfaceperipheral that can function as a second force functionality button, thesecond force functionality button manipulatable by the user, whereinmanipulation of the second force functionality button by the user isconfigured to cause a second force functionality mode to be active, thesecond force functionality mode being different from the first forcefunctionality mode.
 14. The method of claim 13, wherein the second forcefunctionality button is configured to toggle a pressure scrolling mode,wherein a spring force is output in the pressure scrolling mode on theportion of the force feedback interface peripheral opposing movement ofthe cursor through a border of a designated graphical object or region,a rate of scrolling of an object being controlled by an amount ofpenetration of the portion of the force feedback interface peripheralagainst the spring force.
 15. A device, comprising: at least one sensorthat detects a motion or position of a manipulandum coupled to thedevice, a location of a cursor displayed by a host computer incommunication with the device being responsive to manipulation of themanipulandum; at least one actuator operative to output a force feedbacksensation; an indexing button provided on the device, said indexingbutton enabling an indexing mode; and a force functionality buttonprovided on the device and manipulatable by a user, said forcefunctionality button configured to toggle the force feedback sensationoutput when the cursor encounters a designated graphical object orregion upon a graphical display of the host computer, said togglingresponsive to manipulation of said force functionality button.
 16. Amethod, comprising: providing a force feedback interface peripheralincluding at least one sensor and at least one actuator, the actuatoroperative to output forces to a user of the force feedback interfaceperipheral; providing a button on the force feedback interfaceperipheral, that can function as a force functionality button, the forcefunctionality button being manipulatable; providing an indexing buttonon the force feedback interface peripheral, the indexing buttonconfigured to enable an indexing mode when depressed by the user;enabling a cursor to be controlled on a host computer, a displayedlocation of the cursor being responsive to manipulation of a portion ofthe force feedback interface peripheral; and enabling the forcefunctionality button to toggle the application of a force feedbacksensation by the actuator when the cursor encounters a designatedgraphical object or region upon the graphical display of the hostcomputer, the toggling responsive to the manipulation of the forcefunctionality button by the user.
 17. A device, comprising: a sensorconfigured to detect a movement of the sensor and to output a positionsignal, the position signal operative to update data values associatedwith a location of a cursor displayed on a graphical interface; anactuator configured to output haptic feedback based on the location ofthe cursor displayed on the graphical interface; and a button configuredto selectively modify the haptic feedback output by said actuator whenthe data values associated with the location of the cursor areassociated with a graphical object displayed on the graphical interface,the haptic feedback being representative of a resistive spring forceopposing a movement of the cursor displayed on the graphical interface.18. The device of claim 17, further comprising: an indexing buttoncoupled to the actuator, said indexing button configured to enable anindexing mode.
 19. The device of claim 17, wherein said actuator isconfigured to be controlled by a local processor, the local processorconfigured to receive a control signal from a host computer coupled tothe graphical interface.
 20. The device of claim 17, wherein theposition signal is operative to scroll a document displayed on thegraphical interface, a speed at which the document is scrolled beingproportional to a movement of the cursor into a window on the graphicalinterface.
 21. The device of claim 17, said button being a first button,the haptic feedback being a first haptic-feedback mode, the devicefurther comprising: a second button configured to actuate a secondhaptic-feedback mode.
 22. A method, comprising: outputting a positionsignal, the position signal being based on a movement of ahaptic-feedback device; updating data values associated with a locationof a cursor displayed on a graphical interface, the updating being basedon the position signal; using a first button associated with thehaptic-feedback device to select between a first type of haptic feedbackto be provided to the haptic-feedback device when the first button is ina first position and a second type of haptic feedback when the firstbutton is in a second position different from the first position; andoutputting a first haptic feedback at the haptic-feedback device basedon (1) whether the first button is in the first position or the secondposition, (2) a feedback signal, and (3) data values associated with thelocation of the cursor, the data values corresponding to data valuesassociated with one of a graphical object and a graphical regiondisplayed on the graphical interface.
 23. The method of claim 22,wherein the position signal is operative to scroll a document displayedon the graphical interface, a speed at which the document is scrolledconfigured to be proportional to a penetration of the cursor into awindow on the graphical interface.
 24. The method of claim 22, furthercomprising: outputting a second haptic-feedback based on the feedbacksignal; modifying the second haptic-feedback using a second buttoncoupled to the haptic-feedback device.
 25. The method of claim 24,wherein said outputting the second haptic-feedback includes outputting ahaptic feedback with a different force functionality than the firsthaptic feedback.
 26. A device, comprising: a sensor configured to detecta movement of the sensor and to output a position signal, the positionsignal operative to update data values associated with a location of acursor displayed on a graphical interface; an actuator configured tooutput haptic feedback based on the location of the cursor displayed onthe graphical interface; and a button configured to selectively modifythe type of haptic feedback output by said actuator when the data valuesassociated with the location of the cursor are associated with one of agraphical object and graphical region displayed on the graphicalinterface, the haptic feedback corresponding to a first haptic-feedbackmode when said button is in a first position and corresponding to asecond haptic-feedback mode when the button is in a second position. 27.The device of claim 26, wherein the first haptic-feedback isrepresentative of a resistive spring force and the secondhaptic-feedback has a different force functionality than the firsthaptic feedback.
 28. The device of claim 27, wherein the position signalis operative to scroll a document displayed on the graphical interface,a speed at which the document is scrolled being proportional to apenetration of the cursor into a window on the graphical interface.